perm filename INIT.SAI[PNT,HE]8 blob
sn#375114 filedate 1978-08-21 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 IFCR NOT DECLARATION($$PRGID) THENC
C00009 ENDMK
C⊗;
IFCR NOT DECLARATION($$PRGID) THENC
ENTRY;
BEGIN "INIT" ENDC
DEFINE $INIT=TRUE;
REQUIRE "HEADER.SAI" SOURCE_FILE;
DEFINE #USERS=13;
PRESET_WITH "TOB","ARG","MSM"," HN","JKS","ROD","RDG","EPP"," NH","HMP"," ES","RDO","MGF";
STRING ARRAY USERID[1:#USERS];
PRESET_WITH "Tom","Ron","Shahid","Hamid","Ken","Rod", "Russell","Enrico","Norm","Henri","Gene","Dan","Mark";
STRING ARRAY USERNAME[1:#USERS];
PROCEDURE INIBRK;
BEGIN
STRING BTABLE;
BTABLE←"⊂⊃={}.,;[]()+-*/←↑↓→?α$|⊗"&LF&CR&TAB&FF&SP&dquote;
SETBREAK ($CRTAB ←GETBREAK,CR,LF&FF,"INSK");
SETBREAK ($FFTAB ←GETBREAK,FF,NULL,"INSK");
SETBREAK ($RETAB ←GETBREAK,BTABLE,NULL,"INR"); ! used by gtoken;
SETBREAK ($SKTAB ←GETBREAK,BTABLE,NULL,"INS");
SETBREAK ($SPCTAB←GETBREAK,TAB&SP,NULL, "XNR");
SETBREAK ($ALFTAB←GETBREAK,NULL,NULL,"XRN");
SETBREAK ($NUMTAB←GETBREAK,"@+-0123456789",NULL,"XNR"); ! as table 10;
SETBREAK ($DSHTAB←GETBREAK,"_",NULL,"INS"); ! used by COPY/MERGE;
SETBREAK ($ERRTAB←GETBREAK,BTABLE,SP&CR,"IN"); ! used while recovering;
SETBREAK ($BSKTAB←GETBREAK,NULL,SP,"IN"); ! used to eliminate blanks;
SETBREAK ($DPYTAB←GETBREAK,CR,CRLF,"INS"); ! used for display;
$BLANK←" ";
SETFORMAT(0,3);
END;
REQUIRE INIBRK INITIALIZATION ;
PROCEDURE GETUSERNAME;
BEGIN
INTEGER I; STRING ID;
ID←CVXSTR(CALL(0,"DSKPPN")); ! look at alias;
ID←ID[4 TO 6];
FOR I←1 STEP 1 UNTIL #USERS
DO IF EQU(ID,USERID[I]) THEN DONE;
IF I>#USERS THEN
BEGIN
ID←CVXSTR(CALL(0,"GETPPN")); ! look at login ppn;
ID←ID[4 TO 6];
FOR I←1 STEP 1 UNTIL #USERS
DO IF EQU(ID,USERID[I]) THEN DONE;
END;
IF I>#USERS THEN BEGIN OUTSTR("I haven't met you before, what is your name? ");
$USERNAME←INCHWL;
END
ELSE $USERNAME←USERNAME[I];
END;
REQUIRE GETUSERNAME INITIALIZATION;
INTERNAL PROCEDURE INIT;
BEGIN
! some initializations;
INTEGER I;
FOR I←#MIN STEP 1 UNTIL #MAX DO
$ENTRY[I]←(I-#MIN)*#LTYPE;
STOKEN←FALSE;
$ALLOW←0;
$TTYFL←NULL;
$TOTFL←0;
$ALFL←"DECLAR.AL"; ! default name for input/output file;
$EPS←0.001;
HANDB←ENSYM("BHAND",#SC,S_BHAND←MK_REC(#SC));
HANDY←ENSYM("YHAND",#SC,S_YHAND←MK_REC(#SC));
SCALAR:VALUE[SYMBOL:OBJECT[INCHES←ENSYM("INCHES",#SC,MK_REC(#SC))]]←1;
SCALAR:VALUE[SYMBOL:OBJECT[INCH←ENSYM("INCH",#SC,MK_REC(#SC))]]←1;
SCALAR:VALUE[SYMBOL:OBJECT[DEG←ENSYM("DEG",#SC,MK_REC(#SC))]]←1;
SCALAR:VALUE[SYMBOL:OBJECT[DEGREE←ENSYM("DEGREE",#SC,MK_REC(#SC))]]←1;
SCALAR:VALUE[SYMBOL:OBJECT[DEGRES←ENSYM("DEGREES",#SC,MK_REC(#SC))]]←1;
VECTOR:XC[SYMBOL:OBJECT[XHAT←ENSYM("XHAT",#VT,V_XHAT←MK_REC(#VT))]]←1;
VECTOR:YC[SYMBOL:OBJECT[YHAT←ENSYM("YHAT",#VT,V_YHAT←MK_REC(#VT))]]←1;
VECTOR:ZC[SYMBOL:OBJECT[ZHAT←ENSYM("ZHAT",#VT,V_ZHAT←MK_REC(#VT))]]←1;
NILVECT←ENSYM("NILVECT",#VT,V_NILVECT←MK_REC(#VT));
WORLD←ENSYM("STATION",#FR,F_WRLD←MK_REC(#FR));
FRAME:PNAME[F_WRLD]←"STATION";
BARM←ENSYM("BARM",#FR,F_BARM←MK_REC(#FR));
FRAME:PNAME[F_BARM]←"BARM";
YARM←ENSYM("YARM",#FR,F_YARM←MK_REC(#FR));
FRAME:PNAME[F_YARM]←"YARM";
BPARK←ENSYM("BPARK",#FR,F_BPARK←MK_REC(#FR));
FRAME:PNAME[F_BPARK]←"BPARK";
YPARK←ENSYM("YPARK",#FR,F_YPARK←MK_REC(#FR));
FRAME:PNAME[F_YPARK]←"YPARK";
BGRASP←ENSYM("BGRASP",#FR,F_BGRASP←MK_REC(#FR));
FRAME:PNAME[F_BGRASP]←"BGRASP";
POINTER←ENSYM("POINTER",#FR,F_POINTER←MK_REC(#FR));
FRAME:PNAME[F_POINTER]←"POINTER";
NILROTN←ENSYM("NILROTN",#RT,R_NILROTN←MK_REC(#RT));
NILTRANS←ENSYM("NILTRANS",#TR,T_NILTRANS←MK_REC(#TR));
ARRTRAN(FRAME:XF[F_BPARK],TRANS:XF[DOTREXP(0,180,0,43.53125,56.855,9.95875)]);
ARRTRAN(FRAME:XF[F_YPARK],TRANS:XF[DOTREXP(0,180,0,40,14,9)]);
ARRTRAN(FRAME:XF[F_BGRASP],TRANS:XF[DOTREXP(-180,180,0,0,0,0)]);
ARRTRAN(FRAME:XF[F_POINTER],TRANS:XF[DOTREXP(-.417,13.2,-5.173,.0121,.119,3.75)]);
AFX_NODE(F_BARM,F_WRLD,#NRGLK);
AFX_NODE(F_YARM,F_WRLD,#NRGLK);
AFX_NODE(F_BGRASP,F_BARM,#RGDLK);
AFX_NODE(F_POINTER,F_BARM,#RGDLK);
DEVICE ← TTY_X;
TTYUP(TRUE); ! conversion to upper cases;
F_ARM←F_BARM;
END;
REQUIRE INIT INITIALIZATION;
END;